<?php


/**
 * UserIdentity represents the data needed to identity a user.
 * It contains the authentication method that checks if the provided
 * data can identity the user.
 */
class UserIdentity extends CUserIdentity {
    // Будем хранить id.
    protected $_id;
    public $email;
    public $_avatar;
    
    // Данный метод вызывается один раз при аутентификации пользователя.
    public function authenticate(){
        // Производим стандартную аутентификацию, описанную в руководстве.
    	$email = strtolower($this->username);
    	//$user = User::model()->find('LOWER(email)=?', array($email));
    	$user = Users::model()->findByAttributes(array('email'=>$this->username, 'network'=>'site', 'disabled'=>'0'));
    	
        if( ($user===null) or !$user->validatePassword($this->password) ) {
            $this->errorCode = self::ERROR_USERNAME_INVALID;
        } else {
            // В качестве идентификатора будем использовать id, а не username,
            // как это определено по умолчанию. Обязательно нужно переопределить
            // метод getId(см. ниже).
            $this->_id = $user->id;
            Yii::app()->user->setState('avatar', $user->avatar);
 
            // Далее логин нам не понадобится, зато имя может пригодится
            // в самом приложении. Используется как Yii::app()->user->name.
            // realName есть в нашей модели. У вас это может быть name, firstName
            // или что-либо ещё.
            
            $this->username = $user->full_name!=NULL ? $user->full_name : $user->username;
 
            $this->errorCode = self::ERROR_NONE;
        }
       return !$this->errorCode;
    }


    public function getId(){
        return $this->_id;
    }
}